/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package com.tomasio.projects.welcome.interfaces;

import com.tomasio.projects.welcome.dto.AutorizacaoDeAcessoDTO;
import com.tomasio.projects.welcome.dto.CartaoDTO;
import com.tomasio.projects.welcome.dto.GrupoAutorizacaoDeAcessoDTO;
import com.tomasio.projects.welcome.dto.PessoaDTO;
import com.tomasio.projects.welcome.dto.ProibicaoDeAcessoDTO;
import com.tomasio.projects.welcome.dto.TranseunteDTO;
import com.tomasio.projects.welcome.dto.VeiculoDTO;
import java.util.List;

/**
 *
 * @author administrador
 */
public interface AutorizacaoService {
    
    void createAutorizacaoDeAcesso(AutorizacaoDeAcessoDTO autorizacao);
    void updateAutorizacaoDeAcesso(AutorizacaoDeAcessoDTO autorizacao);
    void createGrupoAutorizacaoDeAcesso(GrupoAutorizacaoDeAcessoDTO grupo);
    void updateGrupoAutorizacaoDeAcesso(GrupoAutorizacaoDeAcessoDTO grupo);
    void removeGrupoAutorizacaoDeAcesso(Long grupoAutorizacaoId);
    GrupoAutorizacaoDeAcessoDTO findGrupoAutorizacaoDeAcesso(Long grupoAutorizacaoId);
    List<GrupoAutorizacaoDeAcessoDTO> findAllGruposAutorizacaoDeAcesso();
    List<ProibicaoDeAcessoDTO> findAllProibicoesDeAcesso();
    List<AutorizacaoDeAcessoDTO> findAutorizacoesDeAcesso(Long transeunteId);
    List<ProibicaoDeAcessoDTO> findProibicoesDeAcesso(Long transeunteId);
    ProibicaoDeAcessoDTO findProibicaoDeAcesso(Long proibicaoId);
    void createProibicaoDeAcesso(ProibicaoDeAcessoDTO proibicao);
    void removeProibicaoDeAcesso(Long id);
    void updateProibicaoDeAcesso(ProibicaoDeAcessoDTO proibicao);
    CartaoDTO findCartaoByNumero(String numero);
    List<PessoaDTO> searchPessoasByIdentidade(String searchTerm);
    List<PessoaDTO> searchPessoasByName(String searchTerm);
    List<PessoaDTO> searchPessoasByNameWithFotos(String searchTerm);
    List<VeiculoDTO> searchVeiculosByPlaca(String searchTerm);
    long createPessoa(PessoaDTO pessoa);
    long updatePessoa(PessoaDTO pessoa);
    void createVeiculo(VeiculoDTO veiculo);
    void updateVeiculo(VeiculoDTO veiculo);
    List<VeiculoDTO> findAllVeiculos();
    void removeVeiculo(Long id);
    PessoaDTO findPessoaByCPF(String cpf);
    VeiculoDTO findVeiculoByPlaca(String placa);
    PessoaDTO findPessoaByIdentidade(String numero, String orgaoExp);
    PessoaDTO findPessoa(Long pessoaId);
    VeiculoDTO findVeiculo(Long veiculoId);
    TranseunteDTO findTranseunte(Long id);

}
